package com.yixun.qfbao.api.service.impl;

import com.yixun.qfbao.api.service.AffixService;
import com.yixun.qfbao.apidto.AffixDto;
import com.yixun.qfbao.mapper.AffixMapper;
import com.yixun.qfbao.model.Affix;
import com.yixun.qfbao.util.AffixConvert;
import com.yixun.qfbao.xf.model.dto.CustomerPremisesAffixDto;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
 * @author shiming.ma
 * @create 2018-07-09 14:01
 **/
@Service
public class AffixServiceImpl implements AffixService{
	
	
	
	@Autowired
	private AffixMapper affixMapper;

	@Override
	public void addAffixBatch(List<AffixDto> dtoList) {
		if(!CollectionUtils.isEmpty(dtoList)){
			List<Affix> affixList = new ArrayList<Affix>();
			Affix affix = null;
			for (AffixDto dto : dtoList) {
				affix = AffixConvert.convertDTO2Model(dto);
				affix.setCreatedTime(new Date());
				if (StringUtils.isBlank(dto.getAffixUuid())) {
					affix.setAffixUuid(UUID.randomUUID().toString());
				}
				if (StringUtils.isEmpty(affix.getFileType())) {
					affix.setFileType(getFileType(affix.getUrl()));
				}

				affixList.add(affix);
			}
			
			affixMapper.addAffixBatch(affixList);
		}
		
	}

	@Override
	public List<AffixDto> listAffix(Long followUpListId) {
		List<Affix> affixList=affixMapper.listAffix(followUpListId);
		List<AffixDto> dtoList=new  ArrayList<AffixDto>();
		if(!CollectionUtils.isEmpty(affixList)){
			for(Affix affix:affixList){
				dtoList.add(AffixConvert.convertModel2DTO(affix));
			}
		}
		return dtoList;
	}

	@Override
	public void removeAffix(String affixUuid) {
		affixMapper.removeAffixByAffixUuid(affixUuid);
		
	}

	@Override
	public AffixDto getAffix(String affixUuid) {
		Affix affix=affixMapper.getAffix(affixUuid);
		return AffixConvert.convertModel2DTO(affix);
	}

	@Override
	public List<CustomerPremisesAffixDto> listAffixByAffixType(Long reportId, String affixType) {
		List<Affix> affixList=affixMapper.listAffixByAffixType(reportId, affixType);
		List<CustomerPremisesAffixDto> dtoList=new  ArrayList<CustomerPremisesAffixDto>();
		if(!CollectionUtils.isEmpty(affixList)){
			for(Affix affix:affixList){
				dtoList.add(AffixConvert.convertModel2CusDTO(affix));
			}
		}
		return dtoList;
	}
	//从链接中获取图片类型
	private String getFileType(String url){
		String type = url.substring(url.lastIndexOf(".")+1,url.length());
		if(StringUtils.isEmpty(type)){
			type = "png";
		}
		return type;
	}
}
